package gt

import (
	"github.com/spf13/viper"
	"log"
)

/*

使用viper来加载配置文件
*/
var Config *configViper

//根据需要可以再自定义新的配置项
type configViper struct {
	//日志输出：控制台输出和文件输出，如果仅仅是控制台输出则配置为:console，如果仅仅文件输出，则设置为：file；如果既控制台输出，有文件输出，则设置为：all。
	LogOut string
	//日志模式:develop、production
	LogModel string
	//日志级别info、debug、error
	LogLevel string
	//日志路径，如果没有开启输出日志到文件，则该值无效
	LogPath string
	//日志文件保存的最大尺寸，单位M
	LogMaxSize int
	//日志文件最多保存多少个备份
	LogMaxBackups int
	//定时任务时间
	CronSpec string
	//	数据库引擎、mysql？postgresql？
	DBEngine string
	// 数据库连接地址 例如："root:haosql@(127.0.0.1:3306)/test?charset=utf8"
	DBUrl string
	// 是否带你SQL日志
	DBShowLog bool
}

func initConfig() {
	viper.SetConfigName("config")     //指定配置文件的文件名称(不需要制定配置文件的扩展名)
	viper.AddConfigPath("./configs/") // 设置配置文件和可执行二进制文件在用一个目录
	viper.SetConfigType("yaml")
	err := viper.ReadInConfig() // 根据以上配置读取加载配置文件
	if err != nil {
		log.Fatal(err)
	}
	Config = new(configViper)
	Config.LogOut = viper.GetString("log.out")
	Config.LogModel = viper.GetString("log.model")
	Config.LogLevel = viper.GetString("log.level")
	Config.LogPath = viper.GetString("log.path")
	Config.LogMaxSize = viper.GetInt("log.maxsize")
	Config.LogMaxBackups = viper.GetInt("log.maxbackups")
	Config.CronSpec = viper.GetString("cron")
	Config.DBEngine = viper.GetString("db.dbEngine")
	Config.DBUrl = viper.GetString("db.dbUrl")
	Config.DBShowLog = viper.GetBool("db.showlog")

}
